package com.PAT.practice02;

import java.lang.reflect.Parameter;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: zjz
 * @Date: 2022/02/16/14:21
 * @Description:
 * @Target:
 */
public class 缘分数 {
    /*
    * 所谓缘分数是指这样一对正整数 a 和 b，其中 a 和它的小弟 a−1 的立方差正好是另一个整数 c 的平方,而 c 正好是 b 和它的小弟 b−1 的平方和。
    * 例如 8^3−7^3=169=13^2，而 13=3^2+2^2，于是 8 和 3 就是一对缘分数。
    *
    *
    * */


    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        long start = in.nextLong();
        long end = in.nextLong();
        boolean flag = false;
        for (long i = start; i <= end; i++) {
            long temp1 = (i*i*i-((i-1)*(i-1)*(i-1)));

            if ((long) Math.sqrt(temp1)*(long) Math.sqrt(temp1)!=temp1){
                continue;
            }else {
                long temp = getN((long)Math.sqrt(temp1));
                if (temp!=0){
                    System.out.print(i);
                    System.out.print(" "+temp);
                    System.out.println();
                    flag =  true;
                }
            }

        }


        if (flag == false){
            System.out.println("No Solution");
        }




    }

    // 获取缘份数中的N，给定一个数(进来13)，找出它的N组合，没有就返回0，有就返回N
    static long getN(long xxx){
        long N = 0;
            if (xxx>5){
            for (long i = (long) Math.sqrt(xxx/2); i <= (long) Math.sqrt(xxx); i++) {
                if (i*i+(i-1)*(i-1)==xxx){
                    N = i;
                }
            }
        }
        return N;
    }

}
